package com.dkts.oil.model;


import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import org.locationtech.jts.geom.Point;

import java.sql.Timestamp;

@Data
@Schema(description = "AIS轨迹数据点实体类")
public class AisDataPoint {

    @Schema(description = "主键 ID，自增", example = "1")
    private Integer id;

    @Schema(description = "海事移动服务识别码 MMSI", example = "369970969")
    private Long mmsi;

    @Schema(description = "轨迹分段号 ID（整数）", example = "100")
    private Integer segmentId;

    @Schema(description = "目的地", example = "USNNS")
    private String dest;

    @Schema(description = "预计到达时间（原始字符串格式）", example = "2021-08-20T08:00:00Z")
    private String eta;

    @Schema(description = "经度", example = "-76.317257")
    private Double lon;

    @Schema(description = "纬度", example = "36.867047")
    private Double lat;

    @Schema(description = "航向角 Heading（度）", example = "228.0")
    private Double hdg;

    @Schema(description = "对地航向 COG（度）", example = "153.7")
    private Double cog;

    @Schema(description = "对地速度 Speed（节）", example = "0.1")
    private Double speed;

    @Schema(description = "转向速率 ROT（度/分钟）", example = "0.0")
    private Double rot;

    @Schema(description = "时间戳（UTC 时间）", example = "2021-08-20T08:00:00Z")
    private Timestamp time;

    @Schema(description = "标准化 ETA 时间（UTC）", example = "2021-08-20T08:00:00Z")
    private Timestamp etaStd;

    @Schema(description = "导航状态（0~15）", example = "0")
    private Integer navistat;

    @Schema(description = "距离上一轨迹点的距离（公里）", example = "0.0")
    private Double distance;

    @Schema(description = "距离上一轨迹点的时间间隔（分钟）", example = "0.0")
    private Double timeInterval;

    @Schema(description = "导入的唯一标识，用于轨迹分组等", example = "UNIQUE_123456")
    private String uidkey;

    @Schema(description = "空间点（经纬度坐标），用于空间查询")
    private Point geom;

    @Schema(description = "创建时间（数据插入时间）", example = "2021-08-20T08:00:00Z")
    private Timestamp createTime;

    @Schema(description = "轨迹分段号index", example = "100")
    private Integer segmentIndex;

}
